package br.unifor.cadeventos.business;

import java.sql.SQLException;

import org.apache.log4j.Logger;

import br.unifor.cadeventos.cripto.Criptografia;
import br.unifor.cadeventos.dao.UsuarioDAO;
import br.unifor.cadeventos.entity.Usuarios;
import br.unifor.cadeventos.exceptions.BusinessException;
import br.unifor.cadeventos.internacionalizacao.Messagens;

public class UsuarioBusiness {
	Logger logger = Logger.getLogger(EventoBusiness.class);
	private UsuarioDAO usuarioDAO = new UsuarioDAO();

	public void cadastrarUsuario(Usuarios usuario) throws BusinessException {
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);

		try {
			usuario.setSenha(Criptografia.criptografar(usuario.getSenha()));
			usuarioDAO.salvar(usuario);
		} catch (SQLException e) {
			logger.error(Messagens.MSG_INSERCAO_EX, e);
			throw new BusinessException(Messagens.MSG_INSERCAO_EX);
		}

		logger.debug("finalizando o método: "
				+ new Throwable().getStackTrace()[0]);
	}
	
	public Usuarios login(String email, String senha) throws BusinessException{
		logger.debug("iniciando o método: "
				+ new Throwable().getStackTrace()[0]);
		Usuarios usuario = null;
		try {
			 usuario = usuarioDAO.buscarPorEmailESenha(email, Criptografia.criptografar(senha));
			 
			 return usuario;
		} catch (SQLException e) {
			logger.error(Messagens.MSG_BUSCA_EX, e);
			throw new BusinessException(Messagens.MSG_BUSCA_EX);
		} finally {
			logger.debug("finalizando o método: "
					+ new Throwable().getStackTrace()[0]);
		}
		
	}

}
